<?php

namespace CHOMP\SGIBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Pagerfanta\Pagerfanta;
use Pagerfanta\Adapter\DoctrineORMAdapter;
use CHOMP\SGIBundle\Services\SessionManager;
use JMS\DiExtraBundle\Annotation as DI;
use Symfony\Component\HttpFoundation\Session\Session;

class ReportesController extends Controller
{
	/**
	 * 
	 * @var SessionManager
	 * @DI\Inject("session.manager")
	 */
	public $sessionSvc;


   	public function inicioAction()
	{	
		if ($this->sessionSvc->userIsLogged()){
			return $this->render('CHOMPSGIBundle:Reportes:inicio.html.twig');
		}else{
			return $this->redirect($this->generateUrl('chompsgi_homepage'));	
		}
	}	

   	public function hsEmpresaAction(Request $request, $datos)
	{
		if ($this->sessionSvc->userIsLogged()){
			$usuario = $this->sessionSvc->getCurrentUser();
			$idsEmpresas = $this->sessionSvc->getEmpresasFor('VER_REPORTE');
			$idsEmpresas = $idsEmpresas.', '.$usuario->getEmpresa()->getId();
			$this->sessionSvc->setSession('empresas', $idsEmpresas);
			$empresas = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Empresa')->getAllActivasPorEmpresas($idsEmpresas);
			$cuentasAnaliticas = $this->getDoctrine()->getRepository('CHOMPSGIBundle:CuentaAnalitica')->getAllActivasPorEmpresaResult($usuario->getEmpresa()->getId());
			$this->sessionSvc->setSession('CA', $cuentasAnaliticas);
					
			if($datos=='si'){
	
				$idEmpresa = $request->get('empresa');
				$cuentaAnalitica = $request->get('cuentaAnalitica');
				if($cuentaAnalitica==0){$nombreCA = 'Todas';}else{$cuentaAnalitica2 = $this->getDoctrine()->getRepository('CHOMPSGIBundle:CuentaAnalitica')->find($cuentaAnalitica); $nombreCA = $cuentaAnalitica2->getNombre();}
				$desde = $request->get('fechaDesde');
				$hasta = $request->get('fechaHasta');
				
				$horas = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Timesheet')->getHsPorEmpresa($idEmpresa, $desde, $hasta,$cuentaAnalitica );
				
				
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => 'SI', 'reporteHsResp' => '', 'reporteIncCerr' => '', 'respuestaTipo' => 'hsEmp', 'respuestaGenerada' => 'si', 'empresas' => $empresas, 'cuentasAnaliticas' => $cuentasAnaliticas, 'horas' => $horas[0], 'nombreCA' => $nombreCA, 'desde' => $desde, 'hasta' => $hasta));			
			}else{
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => 'SI', 'reporteHsResp' => '', 'reporteIncCerr' => '', 'respuestaTipo' => 'hsEmp', 'respuestaGenerada' => 'no', 'empresas' => $empresas, 'cuentasAnaliticas' => $cuentasAnaliticas));	
			}
		}else{
			return $this->redirect($this->generateUrl('chompsgi_homepage'));	
		}
	}	

   	public function hsRespSopAction(Request $request, $datos)
	{
		if ($this->sessionSvc->userIsLogged()){
			$usuario = $this->sessionSvc->getCurrentUser();
	
			$query = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Usuario')->getAllActivasPorEmpresa($usuario->getEmpresa()->getId());
			$usuarios = $query->getResult();
					
			if($datos=='si'){
	
				$idResponsable = $request->get('responsable');
				$desde = $request->get('fechaDesde');
				$hasta = $request->get('fechaHasta');			
				
				$horasResp = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Timesheet')->getHsPorResp($usuario->getEmpresa()->getId(), $idResponsable, $desde, $hasta);
				
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => '', 'reporteHsResp' => 'SI', 'reporteIncCerr' => '', 'respuestaTipo' => 'hsResp', 'respuestaGenerada' => 'si', 'usuarios' => $usuarios, 'horasUsuarios' => $horasResp, 'desde' => $desde, 'hasta' => $hasta));			
			}else{
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => '', 'reporteHsResp' => 'SI', 'reporteIncCerr' => '', 'respuestaTipo' => 'hsResp', 'respuestaGenerada' => 'no', 'usuarios' => $usuarios));	
			}
		}else{
			return $this->redirect($this->generateUrl('chompsgi_homepage'));	
		}
	}	

   	public function incCerrAction(Request $request, $datos)
	{
		if ($this->sessionSvc->userIsLogged()){
			$usuario = $this->sessionSvc->getCurrentUser();
			$query = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Usuario')->getAllActivasPorEmpresa($usuario->getEmpresa()->getId());							 		$usuarios = $query->getResult();
			
			if($datos=='si'){
	
				$idResponsable = $request->get('responsable');
				$desde = $request->get('fechaDesde');
				$hasta = $request->get('fechaHasta');			
				
				$incidentes = $this->getDoctrine()->getRepository('CHOMPSGIBundle:Incidente')->getCerradoTermino($idResponsable, $usuario->getEmpresa()->getId(),$desde, $hasta);
	
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => '', 'reporteHsResp' => '', 'reporteIncCerr' => 'SI', 'respuestaTipo' => 'incCerr', 'usuario' => $usuario, 'respuestaGenerada' => 'si', 'usuarios' => $usuarios, 'incidentes' => $incidentes, 'desde' => $desde, 'hasta' => $hasta));			
			}else{
				return $this->render('CHOMPSGIBundle:Reportes:resultados.html.twig', array('reporteHsEmp' => '', 'reporteHsResp' => '', 'reporteIncCerr' => 'SI', 'respuestaTipo' => 'incCerr', 'usuario' => $usuario, 'respuestaGenerada' => 'no', 'usuarios' => $usuarios ));	
			}
		}else{
			return $this->redirect($this->generateUrl('chompsgi_homepage'));	
		}
	}	

}
